home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Communication / Citadel_BBS / Docs / citadel.prf < prev    next >
Text File  |  1998-06-24  |  71KB  |  1,276 lines

  1. .ec ~
  2. .fill
  3. .justify
  4. .rm 70
  5. .m1 0
  6. .m2 0
  7. .m3 0
  8. .m4 0
  9. .np
  10. .ls 1
  11. .ul off
  12. .nr a 1
  13. .nr b 0
  14. .nr a -1
  15. .autoparagraph
  16. .define UNIT
  17. .br
  18. .nr a +1
  19. .nr b 0
  20. .nofill
  21. .lm 0
  22. .cl 0 ~@~{$1 $2 $3 $4 link $1 $2 $3 $4~}
  23. @na. $1 $2 $3 $4 $5 $6 $7 $8 $9
  24. .lm 1
  25. .fill
  26. .br
  27. .en
  28. .define SUBUNIT
  29. .br
  30. .nr b +1
  31. .nofill
  32. .lm 0
  33. .cl 0 ~@~{$1 $2 $3 $4 link $1 $2 $3 $4~}
  34. @na.@nb. $1 $2 $3 $4 $5 $6 $7 $8 $9
  35. .lm 1
  36. .fill
  37. .en
  38. Document Citadel.Guide
  39. .br
  40. ~@REMARK $VER: Citadel.guide 1.0 (27.11.94)
  41. .UNIT MAIN
  42.  The documentation contained is a collection of information based on
  43. the original Citadel 86 documentation by Hue, JR.  The mistakes are mine.
  44.  It is pretty much a complete reference manual and every attempt is being
  45. made to make this a complete manual with all details explained so that
  46. even the most novice of users can understand how to setup and run a bbs.
  47. The most important thing is to read this documentation and give it a try!
  48. .UNIT Citadel History
  49.  What is Citadel? Citadel is a Freeware project.  The source, executables
  50. and all the documentation are available for no cost to you.  If you paid
  51. for this, someone is ripping you off.
  52.  Citadel was written in mid-December 1981 by CrT.
  53. Miraculously, it ran three days unattended over
  54. New Year's, collecting some remarkably favorable reactions.
  55. During the months that it ran at 633-3282 (ODD-DATA),
  56. Citadel became one of the more popular BBs in town, and
  57. there was some disappointment when a hardware failure forced the system
  58. down in February of 1982.  But in January CrT had published the
  59. source code in BDS C, putting it in the public domain.
  60.  David Mitchell brought up the next incarnation of the Citadel
  61. program in April of 1982, running on hardware provided by Richard
  62. Knox.  Called the Island Communication System, it is located on
  63. Bainbridge Island in Puget Sound.  ICS has about 30 regular users
  64. and about 120 log entries.  Newcomers find it easy to learn, and
  65. often leave messages praising it.  Some of the system's daily
  66. users are in Boston.
  67.  Citadel is descended from DandD.pas, an adventure game editor/driver.
  68. It is arranged as a series of rooms, starting with the LOBBY.  In each
  69. room the user can read existing messages and leave more.
  70. The system was brought up
  71. with only one room, the LOBBY.  Additional rooms were created by
  72. the users, with room names appropriate to the topics covered.
  73.  Environment:  Citadel has had a checkered past.  It first ran
  74. on a 64K Heath H89 with Magnolia CP/M, Hayes Smartmodem (plus
  75. an acoustic on another port) and BDS C V1.32.
  76.  As time went on, Citadel was ported to the Amiga, Atari, and even
  77. the MAC.  Citadel runs on many platforms and since the source is available
  78. will probably run on most future ones too.
  79. .UNIT Citadel
  80.  Citadel(also know as Amiga Citadel, Citadel 68K) is a single user BBS program.
  81. It is a direct decendant of the 3.48 Citadel 86 by Hue, JR in Minnesota.
  82. Citadel is able to run on any Amiga model and
  83. under any OS from 1.2 to the latest.  The Amiga Citadel is a direct port
  84. from the IBM Citadel 86 by Hue Jr.  It originally was done by Jay Johnston, who did
  85. not have the time to continue it so I, Tony Preston now maintain it.
  86. .SUBUNIT Support Systems
  87.  Probably the hardest part of running a Citadel is getting started.  Citadel
  88. is not the most common of BBS programs even though it is free.
  89.  You should be able to read this document and setup your configuration file,
  90. run `CONFG' and then startup the BBS with no problems.  Since this rarely
  91. happens and having a helping hand from someone that has already done what
  92. you are trying to do can make things easier, you might want to try one of
  93. these three places for help and information.
  94.  The first is The Amiga
  95. Zone, my BBS(609-953-8159).  It is available 24 hours and is where you will
  96. find the most support and help.  I will often chat with people that call for
  97. help and alway try to answer mail messages promptly.
  98. Since calling long distance may not be an option for you, check around in
  99. your area and see if you can find a local Citadel where you
  100. can take major advantage of the networking features built into Citadel!  The
  101. `C86Net' contains several support rooms where you can post your questions and
  102. usually get quick answers.  These rooms are "Citadel 68K" and "Sysop Only".
  103. If your local sysop will let you have some Long Distance credit you can send
  104. me domain mail at "tony preston@The Amiga Zone.NJ".  You will learn more about
  105. domain mail later.  There are many Citadels active on the network so you
  106. might check the `BBS List' included in this document to see if one is local
  107. to you.
  108. finally, you can send me mail via  Internet.  I will answer the mail quickly
  109. monday thru friday.  Anything sent over the weekend will wait till monday.
  110. you can reach me at "apreston@isd.csc.com" or "tony-preston@cup.portal.com".
  111. .SUBUNIT  Hardware required
  112.  The minimum configuration for `Citadel'
  113. is a 512K Amiga with 2 floppies.  This will allow you to run the BBS, but
  114. probably not much more.  There are some people that have run Citadel on such
  115. a small system.  Most either expand their system or just quit running it.
  116. 1 MB of memory and a hard drive is really the
  117. practical limit.  I have created and ran a test bbs on an A500 with 1 MB
  118. of memory and 2 floppies.  I would recommend that you have 2 MBs and as
  119. a minimum a 20 MB HD for the BBS.
  120. .SUBUNIT Requirements
  121.  Citadel will run on any Amiga Model.  There are some minor problems with
  122. running CONFG and fast memory on A3000s and A4000, but the work around is
  123. simply to run NOFastMem before running CONFG.  These may be fixed at any
  124. time, but since I do not have an A3000 or A4000, I can't look for the problem.
  125.  Citadel does not need any external support software to run.  It relies
  126. on the Operating System for 100% of the normal functions and is compatible
  127. with 1.2 through to the latest OS.
  128.  Citadel does not use alot of stack space, but will require that you have
  129. your stack set to 8K or larger.  8K is more than enough for even the
  130. largest and most complex Citadel.  Citadel will make sure you have at least
  131. an 8K stack or it will quit with a `Citadel Error'.
  132.  It is important to note is that you really should
  133. plan on a 24 hour BBs, with a dedicated phone line.  A BBS that is available
  134. from 11pm to 6am is not going to be very popular.  I would suggest that you
  135. do not even consider networking unless your BBS is on a regular schedule.
  136. .SUBUNIT Citadel Error
  137.  Citadel is a complex system, and is used on many sites.  Things do not always
  138. run smoothly and many different problems arise from time to time.  There are
  139. many Citadel `Utilities' designed to help solve these problems or at least
  140. to assist in trouble shooting.  There are several problem areas and the most
  141. important thing is to collect sufficient information to diagnose the problem.
  142.  Citadel 68K has two methods of reporting errors.  The first is on the console
  143. as the error occurs.  Many times, this will have scrolled off the console and
  144. is lost.  To prevent the lose of information, there are various log files which
  145. will also have a copy of the error.  The log files are very important for
  146. locating problems.
  147.  In general, if you get an error and this information does not tell you
  148. how to correct it, collect as much information as possible and report what
  149. happens either directly to me or in the Citadel 68k room.  The first
  150. thing to look for is a file called `debug.sys' or `crash.sys'.  These files
  151. should appear in either your audit area, the home area, or the location
  152. you started up Citadel.  Usually you will want the information in these
  153. files(even if it is just a cryptic one line message like "dependant variables
  154. mismatch", sometimes it tells you exactly where the problem is).  The second
  155. thing you need to do is turn on debug, Here is a general proceedure for
  156. collecting the maximum amount of information:
  157. .in +5
  158.  1) go into the Sysop menu, turn on debug "D" option.  You can also do
  159. this by typing ^D in the console window.
  160.  2) Shut down your Citadel, "X" option.
  161.  3) delete debug.sys in the audit area(or save it if it contains
  162. info I might need.  At the least, edit the file and add some
  163. markers (like two lines of asterisks) at the end of the file.
  164.  4) Bring up Citadel and attempt to reproduce the problem.  If you
  165. cannot do it locally, you might even ask a remote user to do it
  166. for you.  leave debug on.  Note:  If you run CONFG, debug is
  167. automatically turned off, repeat the above steps to turn it on again.
  168.  5) archive all the information(using something like lha) and arrange
  169. to get the information to me.  I may call your BBS to download the
  170. file so make some arrangements in Citadel 68K so I know where it
  171. is.
  172. .in -5
  173.  The above may generate alot of output.  Much of the output is cryptic
  174. and may not seem like anything understandable.  It is mostly internal
  175. data and is useful to me.  Most of the time, you will not need all this
  176. data to detect and fix a problem.
  177.  A more common problem is when your getting started and you cannot get
  178. Citadel to even start up and answer your modem.  This could be either
  179. a hardware or a software problem.
  180.  It may seem strange to say that you have a hardware problem when your
  181. modem seems to work correctly with a terminal program and you can call out
  182. to other places with no problem.  There are several things that are key to
  183. the configuration of your modem and Citadel which always seem to cause a
  184. problem for New Sysops.   The first one is that your modem must not be set
  185. to echo back commands to Citadel.  This is normally the way you use a modem
  186. with a terminal program so you can see the commands you type.  Citadel will
  187. see input and assume that there is a user, start up the connection, and then
  188. find that there is no carrier and hang up the modem.  This will continuosly
  189. cycle and the BBS will not answer any calls.  The simple solution is to either
  190. put E0 in the modem initialize strings(assuming a hayes command set), or to
  191. configure your modem this way as default and save the settings.  This is a
  192. very common error.  Next problem is that no matter what you do, Citadel does
  193. not seem to want to communicate with the modem.  This could be several things
  194. and starting from the Citadel end of things:
  195. .in +5
  196.   1) One of the configuration parameters for the modem is incorrect.  There
  197. are two normal configurations.  The first is with a 2400 non MNP modem.  This
  198. configuration will need to have Citadel answer the phone and detect callers
  199. at 300, 1200, or 2400 baud.  This configuration has all but disappeared since
  200. today just about everyone has 14.4k or faster modems.  A suggested configuration
  201. would be:
  202. .in +5
  203.   Do not use `#SYSBAUD'.
  204.   Do not use `#LOCK-PORT'.
  205.   Do not use `#SERIAL_7WIRE'.
  206.   Specify the correct `#SERIALDEVICE'.
  207.   Specify the correct `#UNITNUMBER', usually 0.
  208.   Specify your proper `#MODEMSETUP'   make sure "E0" is included
  209.   Specify your proper `#REINIT'
  210.   Specify your PROPER `#CALLOUTPREFIX', you probably only need "ATDT"
  211.   Specify your proper `#CALLOUTSUFFIX'  you probably only need  "\r"
  212. .in -5
  213.  For a error correcting modem, 2400 MNP or faster, you need some additional
  214. information and setup.  The way these modems work is that the computer to
  215. modem connection is locked at a fixed rate, usually faster than what the
  216. user connects at.  The rate you choose depends on your hardware.  If you have
  217. a fast system(68030 or better with lots of 32 bit ram), you might be able to
  218. get the Amiga to run reliably at 57.6K(use 8 on the `#SYSBAUD' and `#LOCK-PORT')
  219. but from my experience, 38.4K is the practical maximum.  You will also need
  220. to configure your modem to use CTS/RTS hardware handshaking and disable the
  221. XON/XOFF software handshaking(see your modem manual).  This will give you the
  222. best system response and performance.  You also need to use the `#SERIAL_7WIRE'
  223. parameter so Citadel also enables hardware handshaking.
  224. .in +5
  225.   Use `#SYSBAUD'.
  226.   Use `#LOCK-PORT'.
  227.   Use `#SERIAL_7WIRE'.
  228.   Specify the correct `#SERIALDEVICE'.
  229.   Specify the correct `#UNITNUMBER', usually 0.
  230.   Specify your proper `#MODEMSETUP'   make sure "E0" is included
  231.   Specify your proper `#REINIT'
  232.   Specify your proper `#CALLOUTPREFIX', you probably only need "ATDT"
  233.   Specify your proper `#CALLOUTSUFFIX'  you probably only need  "\r"
  234. .in -10
  235.  From time to time, other errors may appear when you do something that
  236. you really should not do(like power down the modem and then power it up).
  237. These will generate errors like:
  238. .in +5
  239.  Error:  [1]IOError = nnnn
  240.  Error:  [2]IOError = nnnn
  241. .in +5
  242.  Reason:  nnnn is a result code returned from a serial port i/o, usually
  243. a dropped carrier(small timing window for a race condition could
  244. cause this).  The error is handled for 99% of the cases in a way
  245. that will cause Citadel to recover and reset.  [1] is the case
  246. where I check to see what is in the serial port buffer, and [2]
  247. is when the actual read is done.
  248. .in -5
  249.  Error:   Startup Error Code nn
  250. .in +5
  251.  Reason:  something went wrong during system initialization. The reasons
  252. are:
  253. .in +5
  254.  1 - unable to open intuition.library, you must be 1.2 or greater
  255. to run Citadel.
  256.  2 - unable to open graphics.library, same as 1.  This error also
  257. used to mean that the req.library was not in the libs: directory.
  258. This is no longer a requirement.  Citadel does not depend on the
  259. req.library(versions 3.42.P15 or later anyway).
  260.  3 - Insufficient Stack space, Earlier versions of Citadel required a large
  261. stack, much larger than needed(50K).  Citadel still
  262. requires an 8K limit just to be cautious.  In testing, it has never used more
  263. than 4K.
  264.  11 - Console Open Error.  Catch all for console window errors
  265. If you are using #WBSCREEN, try without it.
  266.  25 - Open Serial Port Failed, Well, Citadel could not get to
  267. the serial port(maybe something else has it open.  Note:  You
  268. will not get this error if you run Citadel while it is already
  269. running since it opens the serial port in a shared mode.
  270.  31 - Could not create a Port for timer communications, Low
  271. memory?  Trashed system tables?  Try a re-boot.  This is
  272. one of those, "you should never get here".  If you bug me
  273. with this type of problem, you had better have a full
  274. system configuration and alot of details.
  275.  32 - could not create an I/O request. See 31.
  276.  33 - Open timer.device failed.  See 31.
  277. .in -5
  278.   Note:  In the serial port open errors, and in most cases with debug
  279. turned on, you will get a text error message of the form:
  280.  1:    Date - Dos Error:nnnn
  281.  2:    (some text as to what happened)
  282.  3:    (some text as to what happened) <-- you may get only one line.
  283.  4:    Reason: <error text>
  284.  5:    Current Directory
  285.  
  286.  Line 1: is the internal error code(less than 100), or the Dos error
  287. code.
  288.  Lines 2-3: will either be a command(like in the external protocols) and
  289. a text line, or just one line of text.  External commands will display
  290. the text and command, most errors do not have an external command.
  291.  4: is the reason the error occured(from the Exec routine Fault).
  292.  5: is the current directory.  This is important if you are trying to
  293. setup a door for example and in the wrong directory.
  294.  If the problem is reproducable, do it several times and record all possible
  295. information, especially your system configuration!  If it happens just
  296. once and you can not reproduce it, then still record what you can, check
  297. things like memory in use, what is running.
  298. .in -5
  299.  Note:  If you have a problem that seems to happen often, realize that I
  300. rarely have a crash.  Please check to see that something else is not causing
  301. the problem.  Remove commodities, other programs and see if you can cause
  302. the problem without that super-duper-whiz-bang mouse accelerator/screen
  303. blanker!  It probably is not Citadel!  If you are running on a 512K system,
  304. you may just be running out of memory.  While every attempt has been made
  305. to exit in a friendly manner, no guarentees...
  306. .SUBUNIT Limits
  307. For the most part,`Citadel'
  308. only has your imagination as the limits...  In practicality, there are some
  309. real physical limits you will have.  Each of these limits can be difficult
  310. to adjust later so some planning is important at this point.
  311. You must set a limit on the number of users (`#LOGSIZE'), rooms (`#MAXROOMS'),
  312. and messages (`#MESSAGEK').  These parameters will directly determine the
  313. amount of memory used while the BBS is running and the disk space needed to
  314. support the message base and userlog.
  315. .UNIT CONFG
  316.  To setup the BBS, you must first configure your system.  This means taking
  317. the example configuration and tayloring it to your liking.  The example is
  318. based directly on `The Amiga Zone'.  The first thing you must do is chose
  319. a name for your BBS (`#NODENAME'), a default banner (see `banners' and
  320. `#NODETITLE'), enter in your Identification (`#NODEID').  It is this basic
  321. information that users and other Citadels will know your bbs by.  Once you have
  322. an idea of what
  323. the theme of your BBS is, you can apply it to the initial room (`#BASEROOM'),
  324. and floor (`#MAINFLOOR').  These will be the initial place that people are
  325. located at when they login to your BBS.  Now comes the real work.  You must
  326. decide some `basic system parameters' that will define how much disk space
  327. your system will use.  This is important since the smaller the message base
  328. is, the quicker messages will scroll off.  Citadel has a fixed message base
  329. so that once you configure your system, the disk space usage is constant.
  330. You will never run out of message space, the BBS will reuse the existing
  331. space deleting the oldest messages to make room for the new ones.
  332.  Next we have the `USER_PARAMETERS' which define the default `PRIVILEGES'
  333. for your users.  These determine how open your system is(can a user create
  334. their own account or do you do it?).  Whether people are able to use doors,
  335. or post messages to the network.  If you restrict people, then they will have
  336. to ask you for the privilege(and you will have to give it to those you choose).
  337. If you make them the default, people will get them automatically, you then
  338. do not have to do anything.  I setup my system to be as automatic as possible.
  339. People can create their own account and do not need to be validated.  The
  340. example setup is configured that way.
  341. The most important user is the SYSOP,
  342. You.  There are some parameters that make your life easier. the `sysop_parameters'
  343. will take care of those.  Now we get to `Network' parameters which you can
  344. skip initially, but will eventually want to look into.  Get your BBS up and
  345. running first before you worry about that.
  346.  The basic BBS has several `areas' you will want to setup.  Most people will
  347. setup a logical assignment that is the root of the BBS disk area (called `#HOMEAREA') and
  348. make everything a subdirectory off of that.  Citadel is pretty flexible, if
  349. you are running from an A500 with 2 floppies, it will run, even if the size
  350. will be small!
  351.  CONFG is simple to run.  Once you have created the `CTDLCNFG.SYS' file, you
  352. just run CONFG in the same directory.  It will read each line, and report
  353. any errors.  If there are errors, it will stop after the last line is read.
  354. If no errors, it will finish up its processing, possibly ask you some
  355. questions and create all the required files.  Most of the time, errors are
  356. of the type that say you did not have something setup.  Many of the
  357. parameters have default values(as noted here in this document).  Some of the
  358. parameters refer to directories and are required.
  359. .UNIT SYSOP_PARAMETERS
  360.  There are alot of parameters to setup.  Don't be overwhelmed!  Each
  361. has a simple description and parameters.  Some are ok as the default.
  362.  `#LOCK-PORT'     `#TEMPAREA'      `#QWKFILEAREA'
  363.  `#QWKMAXROOM'    `#QWKMAXPACKET'  `#QWKNAME'
  364.  `#QWKLOCATION'   `#SYSOP-ARCHIVE' `#SYSPASSWORD'
  365.  `#SYSOPNAME'     `#MIRRORMSG'     `#SHARED-ROOMS'
  366.  `#NET_AREA_SIZE' `#MAX_NET_FILE'  `#EDITOR'
  367.  `#CLOCK'         `#SYSBAUD'       `#SERIAL_7WIRE'
  368.  `#DIRECTTOCHIP'  `#SERIALDEVICE'  `#UNITNUMBER'
  369.  `#BIOAREA'       `#MODEMSETUP'    `#REINIT'
  370.  `#CALLOUTPREFIX' `#CALLOUTSUFFIX'
  371.  
  372. .SUBUNIT #CALLOUTPREFIX
  373.  This parameter specifies the initial portion of the dial string passed to the
  374. modem during dialing for networking.  This
  375. is a string value parameter obeying normal formatting directives, and
  376. should be used to convey commands to the modem.  When dialing, Citadel
  377. constructs a phone number to send to the modem as follows:
  378.  <CALLOUTPREFIX><phone#><CALLOUTSUFFIX>
  379.  CALLOUTPREFIX should alert the modem to dial, CALLOUTSUFFIX is supplied by
  380. the `#CALLOUTSUFFIX' parameter.
  381.  If you have a high speed modem, with special dial strings for different
  382. connect rates, See the `#DIALOUT' parameter.
  383. .SUBUNIT #DIALOUT
  384.  
  385. The #DIALOUT<SPEED> parameter allows you to specify different dialing strings
  386. for different data rates.  If you have a network partner that needs a
  387. certain speed for reliable connects, you can set that system's baud rate to
  388. a speed and Citadel will use the appropriate dialout string instead of the
  389. default `#CALLOUTPREFIX'.  The valid strings are:
  390. .in -5
  391.      #DialOut300     #DialOut1200
  392.      #DialOut2400    #DialOut4800
  393.      #DialOut9600    #DialOut14400
  394.      #DialOut19200
  395. .in +5
  396. .SUBUNIT #CALLOUTSUFFIX
  397. .SUBUNIT #LOCK-PORT
  398.  This parameter tells Citadel that you wish to lock the COMPUTER to MODEM
  399. speed to a particular value.  It also causes CTS/RTS hardware handshaking
  400. to be used so that the BBS communicates with the modem at a single speed
  401. and the modem handles all the Modem to Modem speed negotiations.  This
  402. parameter takes a single numberic parameter which must be 1 to 8.  The values
  403. correspond to the speeds:
  404.  0 -  300   1 -  1200   2 -  2400   3 -  4800
  405.  4 - 9600   5 - 14400   6 - 19200   7 - 38400   8 - 57600
  406.  This is the prefered method of setting up the modem.  Today's modems are
  407. able to negotiate with the caller's modem which makes Citadel operation more
  408. reliable and faster.  Without this parameter(you would only do that if you have
  409. a non-error correcting 2400 baud modem), Citadel will attempt to negotiate
  410. the caller's speed.
  411.  The value of this paramter must be the same as `#SYSBAUD' or be smaller.  It
  412. is prefered that the two be the same for best bbs performance.
  413. .SUBUNIT #TEMPAREA
  414.  This parameter takes a quoted string as an argument.  It defines the working
  415. area for the BBS.  All BBS scratch/temporary files will be placed in this
  416. area.  This is a required parameter.
  417. .SUBUNIT #BIOAREA
  418.  This parameter takes a quoted string as an argument.  It defines the
  419. directory used to store user biographies.  A biography can be created by
  420. your users either when they login and create their account or later(and
  421. is can be updated this way also) with the .EB(enter-biography) command.
  422. This is a required parameter.
  423. .SUBUNIT #QWKFILEAREA
  424.  This parameter takes a quoted string as an argument.  It defines the directory
  425. where the QWK processing saves the USER related data.  You must define this
  426. if you wish to supprt QWK packet downloads(external archivers must be available).
  427. .SUBUNIT #QWKMAXROOM
  428.  This parameter defines what the maximum number of rooms a user can scan at one
  429. time.  Users can set their own personal value from one to this number.  This
  430. parameter takes a single integer argument.
  431. .SUBUNIT #QWKMAXPACKET
  432.  This parameter defines what the maximum messages a user can scan at one
  433. time.  Users can set their own personal value from one to this number.  This
  434. parameter takes a single integer argument.
  435. .SUBUNIT #QWKNAME
  436.  This parameter defines a single quoted string that is passed to the QWK
  437. packet to define the name of the packet file.
  438. .SUBUNIT #QWKLOCATION
  439.  This parameter defines a single quoted string passed inthe QWK packet as the
  440. location of your BBS.
  441. .SUBUNIT #SYSOP-ARCHIVE
  442.  This parameter defines a file where all sysop mail is archived.  If this is
  443. defined, each mail message to you will be written to this file.
  444. .SUBUNIT #SYSPASSWORD
  445.  This parameter defines a filename that has you sysop password.  This password
  446. will allow you(or anyone you give the password to) to become a REMOTE Sysop.  A
  447. Remote Sysop can do anything you can do from the console so use this wisely.
  448. .SUBUNIT #SYSOPNAME
  449.  This is you...  This parameter tells the BBS that you are the Sysop.  You will
  450. have to create you account first, then add this to the CTDLCNFG.SYS and run
  451. CONFG again.
  452. .SUBUNIT #MIRRORMSG
  453.  This parameter tells the BBS that you wish to have a mirrored message file.
  454. Basically, if you have the memory, copy your `CTDLMSGS.SYS' to RAM:, and then
  455. start up the BBS, this parameter will allow the BBS to write to both this mirrored
  456. message file and the regular one.  You are responsible for coping te current
  457. file to the mirrored one before the BBS starts up.  In addition to this statement
  458. you need to include a `#MSG2AREA' to tell the BBS where the secondary message
  459. file is.  This parameter takes a single integer value, 0 for off, 1 for on.
  460. If you were using this feature, then put "#MSG2AREA 1" in the CTDLCNFG.SYS file.
  461. .SUBUNIT #SHARED-ROOMS
  462.  This parameter defines the maximum number of rooms a single node can share with
  463. you.  Each entry takes up 6 bytes so the space requirements are minimal.  The
  464. `DATACHNG' utility will allow you to modify this value(make it larger) so plan
  465. accordingly.
  466. .SUBUNIT #CLOCK
  467.  The status bar of the Citadel console contains a clock, updated every minute.
  468. Therefore, the parameter #CLOCK is available to control the
  469. behavior of the status bar clock.  The value you place after #CLOCK
  470. controls the behavior of the status line clock.  Here are the supported
  471. values:
  472. .in -5
  473.  "None"   - If this is present, then you never have a status bar clock.
  474.  "Inuse"  - If this is present, the clock is only displayed when the
  475. system is active.
  476.  "Always" - This causes the clock to be active all the time.
  477. .in +5
  478. .SUBUNIT #SYSBAUD
  479.  This parameter tells Citadel the maximum rate that the BBS will support.
  480. If you have a non-error correcting 2400 baud modem, you would use 2 for the
  481. parameter and Citadel would cycle through 2400, 1200, and 300 baud to determine
  482. the caller's rate.  Today, with low cost 14.4K and 28.8K modems, this would
  483. be pretty rare.  This parameter should be set to the same value as the `#LOCK-PORT'
  484. parameter for any 2400 MNP or faster modem.  Faster modems handles all the
  485. Modem to Modem speed negotiations.  This parameter takes a single numberic
  486. parameter which must be 1 to 8.  The values correspond to the speeds:
  487. .in -5
  488.  0 -  300   1 -  1200   2 -  2400   3 -  4800
  489.  4 - 9600   5 - 14400   6 - 19200   7 - 38400   8 - 57600
  490. .in +5
  491. .SUBUNIT #SERIAL_7WIRE
  492.  This parameter tells Citadel to use CTS/RTS hardware handshaking.  If you
  493. are running a slow, non-error correcting modem, this is not needed.  For any
  494. error-correcting modem, you must use this parameter.
  495. .SUBUNIT #DIRECTTOCHIP
  496.  This parameter tells Citadel to check the hardware directly for Carrier Detect.
  497. You may only use this if your using the internal serial.device and Unit 0.  It
  498. will give better detection of a Carrier or Carrier Lose.  For other serial
  499. cards, like the GVP I/O Extender, you should not have this parameter in your
  500. configurtion.
  501. .SUBUNIT #SERIALDEVICE
  502.  This is an optional parameter if you are using the internal serial port.  If
  503. you have a third party serial card like the GVP I/O Extender, then specify the
  504. device name with this parameter.  The default is "serial.device".
  505. .SUBUNIT #UNITNUMBER
  506.  This goes along with the `#SERIALDEVICE' paramter, the default is 0, if you
  507. are using a different unit number, then specify this parameter.
  508. .SUBUNIT #MODEMSETUP
  509.  This parameter is used to initialize your modem.  It is a string value
  510. parameter obeying the formatting directives; however, you should be
  511. warned Citadel automatically appends a "\r" to the end of this
  512. string before sending it to the modem.
  513.  And when is modemSetup sent to the modem?  It is automatically sent
  514. while Citadel is initializing, and it will also be automatically
  515. sent to the modem whenever the <R>einitialize command is selected from the
  516. Sysop Menu (i.e. privileged function:).
  517.  The value you use for this string should cause the modem to be
  518. put into a mode where it will function suitably with Citadel.  This
  519. includes auto-answer and response to DTR, at the very least.  Other
  520. options you may wish to consider include turning the modem speaker
  521. off (if you have one); consult your modem manual for details.  The example
  522. we have here is biased towards Hayes/compatible modems.  You may have to
  523. do some research if you're using an odd modem.
  524. .SUBUNIT #REINIT
  525.  As faster and faster modems appear on the scene, some of these modems
  526. are displaying odd characteristics which did not appear in the early
  527. 300/1200 modems.  Chief amongst these is that some modems, after
  528. accepting a call at a baud rate lower than the modem's highest, will not
  529. accept calls at higher baud rates without being reinitialized at the
  530. highest baud rate.  If your modem is one of these types, then you will
  531. wish to use this parameter.
  532.  Also, some modems, although capable of accepting
  533. calls at high baud rates directly after low baud calls have been
  534. accepted, are not as reliable in the area of Result Codes as we might
  535. like.  Since Citadel can use Result Codes, we have
  536. observed using #REINIT with some modems actually increases their
  537. reliability.  So, even if you have a good modem, you may wish to use this
  538. parameter.
  539.  When this parameter is present, it causes Citadel to reinitialize
  540. the modem at its highest rate with the string you specify in this
  541. parameter.  This parameter accepts format directives.  For most Hayes
  542. compatible modems, the string "AT" is usually more than acceptable.
  543.  When `#LOCK-PORT' is specified, your modem will always be locked to the
  544. maximum data rate of that parameter and this command will have little use.
  545. .UNIT USER_PARAMETERS
  546.  User parameters is a catch all for most of the parameters related to user.
  547. Since the BBS is about users, nearly everything could be put into this
  548. catagory.  There are three sets of parameters.  The first is the
  549. `unlogged users'
  550. parameters.  This is all the parameters relating to a user that has not
  551. logged in yet.   The second is the `PRIVILEGES', the values given to a new
  552. user when their account is created.  The last is the `user characteristics'.
  553.  Each of these parameters must be setup and will define the way your BBS
  554. operates.
  555. .SUBUNIT unlogged users
  556.  When a user first calls the BBS, they will get a set of default parameters
  557. that will define how the BBS operates until they login or create an account.
  558. If you do not allow them to create an account on their own, they will have
  559. to send you mail and you will have to do this manually(called account validation).
  560. Citadel allows you to operate either way.  For unlogged users, the parameters
  561. are:
  562. .nf
  563.  `#UNLOGGED-WIDTH'   -  The default width of a line
  564.  `#LOGINOK'          -  Open/Close system control
  565.  `#ENTEROK'          -  Can users enter messages while not logged in?
  566.  `#READOK'           -  Can users read messages while not logged in?
  567.  `#ANON-MAIL-LENGTH' -  Limit on anonymous mail length to prevent `RUGGIES'
  568.  `#LOGIN-ATTEMPTS'   -  Limit on how many times a user can make a mistake
  569.  
  570. .SUBUNIT UNLOGGED-WIDTH
  571. .SUBUNIT #LOGINOK
  572. .SUBUNIT #ENTEROK
  573. .SUBUNIT #READOK
  574. .SUBUNIT #ANON-MAIL-LENGTH
  575. .SUBUNIT RUGGIES
  576.  A RUGGIE is a person that either gets carried away with their new
  577. found use of the constitutional right to freedom of speach and needs
  578. to be told to tone it down a little, or they are classified as a
  579. `TWIT'.  Citadel does not do anything special with this type of person
  580. unless you make them a twit.
  581. .SUBUNIT TWIT
  582.  A twit is a user that just will not stay under control.  It may be that
  583. they are being obscene or just nasty to certain people.  Citadel has a
  584. special priveledge called twitting for this type of user.  What this means
  585. is that a twitted user will have all messages discarded, no access to any
  586. files for downloading and will not be able to find any rooms with directories
  587. attached for uploading.  The really neat feature of this is that they will
  588. not know it!  The BBS will pretent to post their messages and will tell them
  589. there is no directory attached to the room as normal error messages.  Even
  590. the most diehard twitted user will eventually lose interest in the BBS if they
  591. never get any attention.
  592. .SUBUNIT #LOGIN-ATTEMPTS
  593. '   -  Limit on how many times a user can make a mistake
  594.  
  595.  
  596. .SUBUNIT PRIVILEGES
  597.  This section defines the user privileges, defaults and all related parameters.
  598. These parameters will save you some time and effort.  If you have doors and want
  599. everyone to be able to play, it does not make sense to have to give everyone the
  600. privilege.  Instead use these parameters to set the defaults.
  601.  `#DOORPRIVS'        -  Allow new users to have access to doors
  602.  `#ROOMOK'           -  Allow users to be able to create new rooms.
  603.  `#ALLMAIL'          -  Control who can use mail
  604.  `FILE-PRIV-DEFAULT' -  Allow users to have file up/down load access
  605. .SUBUNIT user characteristics
  606. .SUBUNIT #BASEROOM
  607.  Citadels always have a minimum of three rooms.  There is the `Aide room',
  608. `Mail room', and the initial room a caller starts out in called the base room.
  609.  Historically, the initial room was always called The Lobby.  Most Citadels
  610. today have this configuration parameter which allows you to name that initial
  611. room.
  612.  This parameter is a string value obeying formatting
  613. directives and goes through the Citadel formatter, and you must limit
  614. yourself to 19 characters or less for this value. And one more note --
  615. Citadel will append the '>' to this name when it prints the room prompt
  616. for this room, you don't have to put it in yourself. If you wished to
  617. emulate the old CP/M Citadel, you'd set baseRoom thus:
  618.  #BASEROOM "Lobby"
  619.  There is no default for this parameter.
  620. .SUBUNIT #MAINFLOOR
  621.  MainFloor is analogous to #BASEROOM.  Most Citadels have a base
  622. floor, just as it has an Aide> room, etc.  This parameter allows you to
  623. name this base floor.  This parameter is a string value which cannot be
  624. longer than 19 characters, and specifies the name of your base floor.  So,
  625. if you want to name your base floor MAIN FLOOR, you'd have
  626.  #MAINFLOOR "MAIN FLOOR"
  627.  There is no default value for this parameter.
  628. .SUBUNIT areas
  629.  The BBS is organized into what is called areas.  These are directories that
  630. either Citadel creates files in, or uses to recieve temporary files from a
  631. network session, or user action.  There are parameters for each of the
  632. major areas.
  633. .nofill
  634.  `#HOMEAREA'        - The root location of the BBS.
  635.  `#HELPAREA'        - Help files(`.HLP'), menus, and banners
  636.  `#LOGAREA'         - User data files
  637.  `#ROOMAREA'        - Room related files
  638.  `#MSGAREA'         - Message base
  639.  `#MSG2AREA'        - Optional secondary Message base to speed up the BBS
  640.  `#FLOORAREA'       - Floor related files
  641.  `#AUDITAREA'       - User, Door, and File activity
  642.  `#HOLDAREA'        - Hold area for user messages
  643.  `#EDIT-AREA'       - Editor area for a sysop editor(console only)
  644.  `#NETAREA'         - Network files area
  645.  `#NET_RECEPT_AREA' - Receiving area for files sent to you
  646.  `#DOMAINAREA'      - Domain data files area
  647.  `#BIOAREA'         - User Biography files
  648.  `#TEMPAREA'        - BBS temporary/scratch files area
  649. .fill
  650.  The `CONFG' program will require that you define each area and will create
  651. the directory if it does not exist.
  652. .SUBUNIT #HELPAREA
  653.    This parameter specifies where all of your Help files will be located.
  654. These files are *.HLP, *.BLB, and *.MNU.  Normally, you should create this
  655. directory and place the help files in the directory before bringing up
  656. Citadel, since help files are usually online at all times.
  657.  #HELPAREA "cit:helps"
  658.  The help files, menus and default bulletins are in the cithelps.lha
  659. file in the Citadel Documentation room.  You will have to do some customization
  660. of these files for your system.  If you find an error or re-write the
  661. contents of a file, try to return that file so that others will benifit from
  662. your work.
  663. .SUBUNIT #LOGAREA
  664.  This parameter specifies the location of your `CTDLLOG.SYS' file (this
  665. file is sized by your `#LOGSIZE' parameter).
  666.  #LOGAREA "cit:users"         -- put it in a general system dir
  667. .SUBUNIT #MSGAREA
  668.  This parameter specifies the location of `CTDLMSG.SYS'.  It is also the
  669. location of the special Citadel message file `CIT_MESSAGES.SYS'.  Citadel
  670. will create the message file when you run `CONFG', the other file is
  671. supplied with the executable archive.
  672.  #MSGAREA "cit:messages"            -- give msgs there own place in the sun
  673. .SUBUNIT #MSG2AREA
  674.  This parameter specifies the location of a second `CTDLMSG.SYS'.
  675. Citadel will create the message file when you run `CONFG'.
  676. Before starting up the BBS, you will need to copy `CTDLMSG.SYS' into this
  677. area if you have the `#MIRRORMSG' statement in the `CTDLCNFG.SYS'.
  678.  #MSG2AREA "cit:messages"            -- give msgs there own place in the sun
  679. .SUBUNIT #FLOORARE
  680.  This parameter specifies the location of `CTDLFLR.SYS'.
  681.  #FLOORAREA "cit:floors"
  682. .SUBUNIT #AUDITAREA
  683.  This parameter is a string value
  684. parameter specifying a directory which will hold the audit
  685. files.  If this parameter is not present in your `CTDLCNFG.SYS' file, then
  686. the audit files will not be created or updated by Citadel.
  687.  The audit files are usually text files of information on how the BBS is
  688. running.  For example there is a file (`CALLLOG.SYS')  which shows information
  689. on the callers.  Another file keeps track of door usage (`DOORUSE.SYS'), and
  690. another one the file up/download information (`FILELOG.SYS').
  691.  #AUDITAREA "c:audit"         -- This can only be a subdirectory
  692. .SUBUNIT #HOMEAREA
  693.  This parameter defines the base directory the BBS will use for its operation.
  694.  This is the directory that the BBS will operate out of.  In the examples,
  695.  this directory is assigned to the logical CIT: to make things simpler.
  696. .SUBUNIT CIT_MESSAGES.SYS
  697.  This file contains most of the Citadel BBS messages.  The BBS references
  698. the text via the Message code.  This allows the SYSOP the maximum flexibility
  699. in configuring their BBS.  You can use the standard messages, or customize
  700. them to your heart's content.
  701.  The Message file is formatted into one line per message.  The first 8 columns
  702. may be A "#" for a comment line, or a message code.  THE "#" in column 1 will
  703. cause the rest of the line to be ignored.  Column 9 is blank, for readability,
  704. and columns 10 to 79 are the message text.  If the message text starts with
  705. an "@", the message text is taken to be a filename and that file will be read
  706. instead as the message text.  This will allow you to have more than one line
  707. in a single message.  The message codes end in either EX for expert user
  708. messages, or NO for novice user message.  If no EX version exists, the BBS
  709. will automatically use the NO version.  If neither one exists, the BBS will
  710. display "***ERROR CODE nnnnnnnn" where nnnnnnnn is the missing message.  If
  711. these occur, just create the appropriate message and add it to the file.
  712. If you find any message codes in the original file missing, then notify the
  713. Amiga Zone.
  714.  One of the reasons for the message formatting is to get system dependant
  715. information from the BBS by using special variable names.  These names are
  716. listed below:
  717. .nf
  718. .nap
  719.   Variable     Description
  720.   ^variant     Name of this Citadel Variant such as "Citadel 68K"
  721.   ^version     Major Version Id of Citadel
  722.   ^sysvers     Minor Version Id of Citadel
  723.   ^baseroom    The baseroom of your BBS
  724.   ^sysop       The name of the Sysop
  725.   ^nodetitle   The BBS Node Title
  726.   ^nodename    The BBS Node Name
  727.   ^nodedomain  The Domain the BBS is considered part of
  728.   ^nodeid      The BBS Node Id
  729.   ^mainfloor   The Floor that contains the BaseRoom
  730.   ^curruser    The name of the Current User.
  731.   ^ulprotocols A list of the Protocols usable for uploading
  732.   ^dlprotocols A list of the Protocols usable for downloading
  733.   ^doorlist    A list of the Doors available in the current room
  734.   ^lastuser    The last caller's name
  735.   ^privileges  A list of the privileges you currently have.
  736.   ^callcount   The number of calls this Citadel has recieved.
  737.   ^ia1         Special Integer Argument #1 (see below)
  738.   ^sa1         Special String Argument  #1
  739.   ^ia2         Special Integer Argument #2
  740.   ^sa2         Special String Argument  #2
  741.   ^ia3         Special Integer Argument #3
  742.   ^sa3         Special String Argument  #3
  743.   ^currtime    The current time
  744.   ^currdate    the current date
  745.   ^s           A single space
  746.   ^n           A newline followed by a space
  747. .fill
  748. .autoparagraph
  749.  The Special Arguments are pieces of data that are used in some of the
  750. existing messages.  Currently the 3rd one is not used(but may be).  Most
  751. of the messages do not use them, but those that do should probably continue
  752. to use them.  You can remove the special variable from the messages that
  753. currently do use them, but adding them to a message that does not will get
  754. you a zero for an interger argument and nothing for a string argument.
  755.  It is best to keep the original message file around to check to see what
  756. was available for the code.
  757. .SUBUNIT CALLLOG.SYS
  758.  CALLLOG.SYS contains three types of notes.  The first type lists when
  759. the system has come up and down.
  760.  The second type records who has called, listing login and logout times,
  761. one line per person, in the following format:
  762.  <person>   :   <login time> - <logout time> <baud rate>
  763.  Occasionally such a line will have an extra character appended onto it,
  764. and they have the following significance.
  765. .nofill
  766.  '+'  The user logged in as new.
  767.  '-'  The user used .TS to logout.
  768.  'T'  The user timed out on the system.
  769.  'E'  The user hit the error limit on the system and was kicked off.
  770.  'B'  The system kicked the user off for too many offenses against `BADWORDS.SYS'.
  771.  'C'  The user tried to chat with you.
  772. .fill
  773.  The third type of message in CALLLOG.SYS are notes regarding network
  774. sessions, both normal and anytime-net.  These record on a single line
  775. the start and end times of the net sessions.  This particular message can
  776. be disabled by using the #CLEAN-CALLLOG parameter.
  777. .SUBUNIT FILELOG.SYS
  778.  FILELOG.SYS format is somewhat different.  Generically, it looks like
  779. this:
  780.  <user name> @ <baud rate>
  781.  file1 (n bytes) <roomname> <U or D> <start to end> <length> <protocol>
  782.  [FAILED]
  783.  file2 (n bytes) <roomname> <U or D> <start to end> <length> <protocol>
  784.  [FAILED]
  785.  This format keeps the number of user names down.  "n bytes" is the size
  786. of the file.  "roomname" is the room involved.  "U or D" refers to whether
  787. the named file was Uploaded or Downloaded.  "start to end" refers to start
  788. time and end time of the file session, while length is the amount of time
  789. involved.  Protocol will be one of the three XMODEM, YMODEM, or WXMODEM, or
  790. an external one you have setup.
  791. "FAILED" will only appear on the line if the transfer failed.
  792. .SUBUNIT DOORUSE.SYS
  793.  DOORUSE.SYS simply lists who used what doors for what amount of time
  794. at what time of the day.  It appears in the `#AUDITAREA'.
  795. .SUBUNIT #HOLDAREA
  796.  Citadel has an optional capability to save a user's messages, put them on
  797. hold so to speak.  This can be because the user lost carrier while entering
  798. a message, or told the BBS to Hold the message for later.  The reason this
  799. is optional, is that if you do not specify this area, a user will not be able
  800. to use this option and any message held will be lost when the user terminates
  801. the session.  A held file takes about 8K bytes of space on the disk.  It is
  802. possible that every user could have a held message at one time, each is uniquely
  803. identified so in figuring disk space, this should be remembered.
  804.  #HOLDAREA "hold"
  805. .SUBUNIT #EDIT-AREA
  806.  The optional edit area goes along with the sysop editor directive `#EDITOR'
  807. which is used to define a directory where the BBS will put the temporary
  808. message file and run the sysop editor(this is for the console user only).
  809. This is like any BBS area.
  810.  #EDIT-AREA "RAM:"
  811. .SUBUNIT #EDITOR
  812.  This is the command that is used to run the optional Console user editor.
  813. When a user is logged into the console, this command is used to invoke the
  814. external program to edit the message text(will be written to tempmsg.sys in
  815. this area).  This command should specify any options needed to make the
  816. editor run and have the BBS pause while the editor is running(some editors
  817. will release the task as soon as they startup which will make Citadel think
  818. your done editing).
  819.  #EDIT-AREA "TTX WAIT"
  820. .SUBUNIT #NETAREA
  821.  This command tells the BBS where to put the files that are related to the
  822. network process.  It is like any other BBS area.
  823.  #NETEAREA "NET"
  824. .SUBUNIT #NET_RECEPT_AREA
  825.  This is a special BBS directory that is used to store all files sent to your
  826. system by another system during a network session.  When a system uses the
  827. Send File faculty(not the same as requesting a file over the network).
  828.  #NET_RECEPT_AREA  "Recieving"
  829.  Files sent to your BBS using the utility `AFF' will appear in this area.  In
  830. addition, the parameters `#NET_AREA_SIZE' and `#MAX_NET_FILE' will be used to
  831. limit the amount of files and the largest file in this area.
  832. .SUBUNIT #NET_AREA_SIZE
  833.  This parameter controls the total amount of space you wish to allow files
  834. coming into your system via the net(Send File Command).  This is the limit
  835. on files being sent to your without you asking.  If this area fills up to
  836. this size, additional files will be rejected.
  837. .SUBUNIT #MAX_NET_FILE
  838.  This parameter controls the size of the largest file your will allow to be
  839. sent to you during a network session.  Files larger than this size will be
  840. rejected.
  841. .SUBUNIT #DOMAINAREA
  842.  This parameter specifies the area where Citadel will put the domain related
  843. temporary files.  The files in this area are dynamic.  Citadel will create
  844. them as needed and maintain them totally.  You will not need to worry about
  845. these files unless there is a problem with domain mail and you are the server
  846. for your domain.  This is a fairly advance topic and not covered in this
  847. document.  Eventually, there will be a separate document for these types of
  848. issues.
  849. .SUBUNIT basic system parameters
  850.  The basic system parameters define how many `rooms'(`#MAXROOMS'),
  851. messages per room(`#MSG-SLOTS'), private mail messages per user(`#MAIL-SLOTS'),
  852. Size of the message base(`#MESSAGEK') and if you will want it encrypted
  853. (`#CRYPTSEED').  You want to give some careful thought to these parameters
  854. since any choices made now will be a bit painful to modify later.  There are
  855. `utilties' that will allow parameters to be modified, but only to increase them.
  856. To decrease them requires that you start over by deleting the appropriate
  857. files and reconfiguring.
  858.  I recommend that you keep `#CRYPTSEED' at zero
  859. although any value can be used.  It makes debug easier for me if I grab
  860. your files plus that value will speed up all the processing.
  861. The message slots and size of the message base is a little cryptic.  If
  862. you have 100 slots, then Citadel will remember the last 100 messages in
  863. each room.  Mail has a separate value, but it is the same idea.  With
  864. 100 rooms, you have 10,000 active messages possible in the system.  With
  865. messages sizing from  500 bytes to 7500 bytes, you could have a message
  866. base of 5,000,000 to 75,000,000!  Typically the average message is alot
  867. closer to the 500 bytes size.  The 600K size here gives me a file that is
  868. 1217 blocks in size(614400 bytes).  This would actually fit on a floppy
  869. if you wanted(although it would pretty much fill the floppy).
  870. You can make these pretty much any value you want, the larger the value
  871. the more the disk space needed.  A reasonable approximation for messagek
  872. is:
  873.  ( MSG-SLOTS + MAIL-SLOTS ) * 2.75K
  874.  ( 120 + 99 ) * 3K = 602.25
  875.  You can use more.....
  876. For the larger sized system, use 7.5K and get 1604K...
  877. The practical limit is 4095K
  878. .SUBUNIT #CRYPTSEED
  879.    CRYPTSEED is a value used in encrypting the data files.  Choose a
  880. value when you install the system, but not thereafter -- or you
  881. won't be able to read the existing files any more.  If you use a value of
  882. zero, none of the data files will be encrypted.  This has little value since
  883. you as SYSOP can access anybody's account and read any message, there is no
  884. privacy.  I recommend using zero.  You should not allow any of the system
  885. files to be downloaded and this is the only protection you have if you do.
  886. It is better to keep the users out of the data files.  Using zero has an
  887. additional benifit that your system will be slightly faster.  If you use a
  888. non zero encryption seed, all the data files will be encoded.   An example
  889. is:
  890.  #CRYPTSEED 1234
  891.  It is important that you do not change this value.  If for some reason you
  892. should lose your `CTDLCNFG.SYS' file, run the `VERIFY' utility and it will
  893. display not only this value, but the value of all the important data from
  894. this file.  Without this data item, you will not be able to reconfigure
  895. your BBS.  This is important since if the bbs should crash, or your system
  896. should go down while the bbs is running, you have to run the CONFG utility
  897. to recreate the data file `CTDLTABL.SYS'.  Without that file, the BBS will
  898. not run.  There is only one parameter on the command line.  If it does not
  899. match "onlyParams" or "FirstInit" then CONFG will assume you are re-initializing
  900. the BBS.  "FirstInit" assumes that you want to create the BBS from scratch
  901. initializing all the files as if creating a new BBS.  This means that if you
  902. already have a BBS up and running, all the data files will be re-created and
  903. initialized as empty(i.e all existing users deleted, all messages gone).  You
  904. can use this the first time and CONFG will not ask you any questions about
  905. creating this file or that one...  Once you have a running BBS and you need
  906. to modify certain parameters(see `Safe Configuration Parameters')
  907. .SUBUNIT Safe Configuration Parameters
  908.  These parameters control characteristics of the BBS and not file sizes.  You
  909. can modify these at any time by changing the value in the `CTDLCNFG.SYS' file
  910. and then running "CONFG ONLYPARAMS".  To do this, change the file, bring the
  911. BBS down, then run CONFG and then restart the BBS.
  912. .SUBUNIT  #NODEID
  913.  As mentioned, this parameter is a network parameter that has
  914. traditionally always been set, even for non-network Citadels.  If you have
  915. no plans to ever be on a `C86Net', Then this is not real important.
  916.  If you do plan to join the `C86Net',
  917. (we'll go over this in more detail in the section on `Networking'),
  918. then you do have to set this parameter correctly.  The format of this
  919. parameter is
  920.  "<Country code><Area Code><Phone number>"
  921.  all of which applies to the phone your system resides on.  Country
  922. code is a two letter sequence indicating what country you live in (US is
  923. the United States, CA is Canada.  Other country codes may be found in
  924. COUNTRY.DOC). Area code is the area code of your system (yes,
  925. we are aware there is a clear bias towards US-style telephony).  And
  926. Phone number is, of course, the phone number your system is on.  You
  927. can put punctuation (such as parenthesis and dashes), but please be
  928. conservative with them.  This string value does not obey formatting
  929. directives.  Here's a fairly generic example:
  930.   #NODEID "US (609) 953 8159"   -- Some system somewhere..:)
  931.  Other systems will use your node id to call you for networking.  It
  932. will be how other systems identify your system's messages.
  933. .SUBUNIT  #NODENAME
  934.  nodeName is, in reality, purely a network parameter, and if you have no
  935. plans to ever join a `C86Net', then there is no need to fill in this
  936. parameter.  However, it has always been traditional, even before there was
  937. a net for any Citadel system anywhere, to fill in this and the `#NODEID'
  938. parameter.   nodeName is a string value which does NOT accept
  939. formatting directives (i.e., formatting directives will be ignored).  It
  940. can be no longer than 19 letters long.  It should be a short, mnemonic
  941. name for your system.  An EXAMPLE of a reasonable value:
  942.  #NODENAME "ODD-DATA"             -- The original Citadel
  943.  If you ever do join a `C86Net', messages from your system appearing on
  944. another Citadel node will look something like this
  945.  82Nov23 from Cynbe ru Taren @ODD-DATA
  946.  except ODD-DATA would be replaced with your value for #NODENAME.
  947. .SUBUNIT  #NODETITLE
  948.  The first parameter you should find is called nodeTitle. It is a string
  949. value obeying formatting directives, and is subject to formatting
  950. considerations.  nodeTitle is the title of your installation printed when
  951. carrier is detected on your system.  More precisely, nodeTitle will show
  952. up in the following place on your system:
  953.   Welcome to <#NODETITLE>
  954.  However, nodeTitle may not necessarily be printed at this point.  After
  955. successfully bringing your system up, please consult the section
  956. on Help Files for more information on banner options.  EXAMPLE:
  957.  #NODETITLE "Test System\n Truly a Heaven in Reverse"
  958. The #NODETITLE is printed out on .Read Status commands, also.  There is no
  959. formal limit on the length of this parameter.
  960. .SUBUNIT  banners
  961. .SUBUNIT  The Amiga Zone
  962.  The Amiga Zone is the primary support BBS.  The number is (609) 953-8159.
  963. There are other Citadels that will help the budding Sysop out, but this is
  964. the place you will find the latest and greatest version of Citadel, CONFG,
  965. and the Utilities.  In addition to calling direct, you should think about
  966. networking the Citadel 68K room.  This is the place where comments, bug
  967. reports, and other issues are discussed.  The Amiga Zone will feed the room
  968. to any Citadel that wishes to network, however, the Amiga Zone will not call
  969. out for a network session unless the system is local.  You will have to pay
  970. for the calls.  This does not amount to much if you call a few times a week.
  971. Fortunately, there are about 200 Citadels in the USA and Canada, you might
  972. find a local system to network with, or one that costs less than the Amiga
  973. Zone to network with.  If you wish, I will answer questions at my internet
  974. address "apreston@isd.csc.com" or "tony-preston@cup.portal.com".
  975. .SUBUNIT  #LOGSIZE
  976.  This numerical parameter gives you the ability to decide
  977. how many accounts will be available on your system.  If you run a system
  978. in which more accounts are used than there are accounts reserved, then new
  979. accounts are generated by killing old accounts.  Accounts are recycled
  980. by finding the account who's last use is the oldest of all the accounts
  981. in the system, under the assumption such an account is no longer active.
  982.  All space is reserved immediately for these accounts.  The size of
  983. this file can be estimated from the formula(this includes a possible held
  984. file for every USER).
  985.   # of bytes = LOGSIZE * (82 + MAXROOMS + (6 * MAIL-SLOTS) + 8092)
  986.  so if you are operating in a restricted environment, plan accordingly.
  987. If you need to, you can expand the size of the log through the use of
  988. the `DATACHNG' utility, but the log cannot be shrunk.  This is a numerical
  989. value.  Here is an example:
  990.  #LOGSIZE 200
  991.  For a system with 100 rooms(`#MAXROOMS'), and 100 mail slots(`#MAIL-SLOTS')
  992. this would be just over 150K bytes for 200 users.
  993. It should be noted that the larger the logsize, the longer the `CONFG'
  994. utility will take to re-configure the system.  Each entry is checked and
  995. updated when this is done.
  996. .SUBUNIT  #MAXROOMS
  997.  This numerical parameter specifies the maximum number of rooms your
  998. system will support.  Since the baseRoom, Aide>, and Mail> room are
  999. necessary, the smallest value you can give is 3.  The largest number is
  1000. 65536.  If you wanted to have a 64 room system, you'd have
  1001.  #MAXROOMS 64
  1002.  You can use the following formula to estimate the number of bytes a
  1003. room file will take up on your SYSTEM:
  1004.  # of bytes = MAXROOMS *(50 + (6 * MSG-SLOTS))
  1005.  For a system with 100 rooms and 200 message slots(`#MSG-SLOTS'), you
  1006. would need aproximately 125 Kbytes of disk space.  It should be noted that the
  1007. larger this is, the longer the `CONFG' takes since each room is updated.
  1008. .SUBUNIT #MAIL-SLOTS
  1009.  This is a numerical parameter specifying how many messages per log
  1010. record you wish to reserve for Mail.  The Mail> room is the only
  1011. room in the system whose data is not kept in CTDLROOM.SYS.  Instead, the
  1012. file CTDLLOG.SYS contains the "Mail>" room, reserving for each account
  1013. enough room for MAIL-SLOTS Mail messages.  Therefore, this parameter gives
  1014. you the ability to decide the maximum number of Mail> messages per user
  1015. they can access.  Please remember if a user gets more messages
  1016. in Mail> than there are MAIL-SLOTS between two successive logins, then
  1017. they will lose the earlier messages sent to them.  Another consideration
  1018. is many users like to review old Mail when engaged in an in-depth
  1019. private conversation.  Therefore, setting MAIL-SLOTS to a low value may
  1020. not be the attractive alternative it first seems.  However, it should
  1021. go without saying a high MAIL-SLOTS value may eat up more room than
  1022. necessary on your drives.  The section on `#LOGSIZE' will give an exact
  1023. formula for how much space your log will take up.
  1024. .SUBUNIT #MESSAGEK
  1025.  MESSAGEK defines how much disk space you wish to allocate for messages
  1026. on your installation.  Because messages can vary in size, there is no way
  1027. to define how many messages you can
  1028. have in your system, or how fast they turnover.  All the messages in your
  1029. system will reside in CTDLMSG.SYS, and thus the number of messages in your
  1030. system at any given moment will depend totally on the length of the messages
  1031. being entered into the system by your users.  The turnover rate of your
  1032. messages will depend on how busy your system is.
  1033.  For example, if you reserve 600K for messages, you would have an approximate
  1034. 1200 messages(messages can get as large a 7500 characters so if you have verbose
  1035. users, this could be as low as 80 messages if they were all to the limit, a
  1036. good conservative estimate is 512 characters which gives 1200 messages).  If
  1037. you get 25 callers a day and each posted 4 messages, you would have a
  1038. turnover of about 12 days.  If you networking and get 25 messages a day
  1039. in 4 rooms, plus these callers, you have a 6 day turnover.  The higher the
  1040. volume, the quicker the turnover.  When the messages turnover, older message
  1041. space gets reused which means older messages are deleted.  Shared rooms can
  1042. have a very high volume.
  1043.  The sysop of an installation should also keep in mind that very large
  1044. systems, with many new messages, can be intimidating to new users, so
  1045. large message spaces should be approached with caution.  Remember, there
  1046. is a utility(`Expand') for expanding the message base, but not for shrinking
  1047. it.  The only method available to shrink the message base is to delete the
  1048. existing one and then reset this value to a smaller amount.  You will lose
  1049. all the messages(including mail) if you do this.
  1050.  This is a numerical value which you specify in 'K', which is actually
  1051. 1024 bytes/K.  So, for example, to specify a 250K message file
  1052.  #MESSAGEK 250               -- 250K message base
  1053.  The above parameter will require 250 Kbytes of disk space.
  1054. .SUBUNIT #SCAN-NET-MESSAGES
  1055.  This parameter tells Citadel that the messages recieved over the network
  1056. should be scanned against the file `BADWORDS.SYS' and any matches should
  1057. cause the offending message to be discarded.
  1058. .UNIT Utilities
  1059. .UNIT Installation
  1060. .UNIT C86Net
  1061. .UNIT BBS List
  1062. .UNIT Files
  1063.  This section details the various files that exist in the Citadel BBS system.
  1064. Most of these files are maintained by the BBS software and you only need to know
  1065. a general idea of why they are there and how big they will be.  Some have particular
  1066. formats and must be maintained by the Sysop. The files are:
  1067.  `debug.sys' - System debug information
  1068.  `crash.sys' - System failure message
  1069. .SUBUNIT debug.sys
  1070.  This file is only generated if the `#AuditArea' is defined.  It will be generated
  1071. only if the debug sysop option is turned on or there is a serious error or problem
  1072. and the system needs to report information.  Most of the entries in this file are
  1073. also displayed on the console.  This is a log that should be examined for problems
  1074. that could occur in your setup.  Generally, if you have a problem and want someone
  1075. to assist you, it would be a good idea to make this file available(in other words
  1076. don't delete until your sure it wont be needed).
  1077. .SUBUNIT crash.sys
  1078.  This file usually contains only a single error message.  It is used to display
  1079. information about a failure while the BBS was initializing and did not have the
  1080. screen and windows open to report the problem.  This file will occur in the
  1081. current directory which might not be `#HOMEAREA', since the BBS is going to stop
  1082. itself immediately.
  1083. .UNIT #ROOMAREA
  1084.  This parameter specifies the location many files.
  1085.  
  1086.  #ROOMAREA "cit:room"          -- another general system dir
  1087.  
  1088.  This directory contains many files which are very important to the basic
  1089. operation of Citadel.  This may seem overwhelming at first, and you need to
  1090. know what these files are to understand how to fix problems that might occur
  1091. later.  Much of these files relate to the options you select on your Citadel
  1092. with `CONFG'.  These affect networking, user account creation, what external
  1093. programs you can run and many other Citadel options.  For the most part, you
  1094. can start up a BBS without knowing anything about these files, but eventually
  1095. if you run into problems, these items are a major help with most of them.
  1096.  
  1097.   `aliases.sys'    `badnames.sys'  `badpasswords.sys'
  1098.   `badpeople.sys'  `badwords.sys'  `citadoor.sys'
  1099.   `ctdlarch.sys'   `ctdldir.sys'   `ctdlfwd.sys'
  1100.   `ctdlinfo.sys'   `ctdlmodr.sys'  `ctdlprot.sys'
  1101.   `ctdlroom.sys'   `DExxx.SYS'     `RESULTS.SYS'
  1102.  
  1103.  Some of these files are maintained by Citadel itself and you need not do
  1104. anything with the files at all.  The only reason they are mentioned here is
  1105. to prevent confusion and to document their ultimate purpose in the life of
  1106. your BBS.
  1107. .SUBUNIT ALIASES.SYS
  1108.  This file is used to alias the name of a BBS with another name.  This serves
  1109. the purpose of clarifying what a user thinks is the name of a BBS.  For example,
  1110. in the typical discussions on BBS issues, people refer to "C-86 Test System"
  1111. using "Test System".  This is common enough that a User might try to send mail
  1112. to  "Sysop@Test System" only to find that the BBS does not exist.  When you have
  1113. two names that seem equally applicable for some system, you can make an entry
  1114. in the ALIASES.SYS file.  The format is one per line and is:
  1115.  <alias> <realname>
  1116.  The <alias> and <realname> are quoted strings so "Amiga Zone"  and "The Amiga Zone"
  1117. would be good entries for an alias and realname.  The two are separated by
  1118. a single space.
  1119. .SUBUNIT badnames.sys
  1120.  This file is optional.  The Sysop may create it if desired.  The format is very
  1121. simple.  One name per line.  Each name in the file will be checked against any
  1122. new account name and the name will be rejected if a match occurs.  This file is
  1123. a list of invalid user names.  If it is not present, Citadel will not complain
  1124. and will accept any new name.
  1125. .SUBUNIT badpasswords.sys
  1126.  This file is optional.  The Sysop may create it if it is desired that the BBS
  1127. should check each password to ensure that commonly used names and easily guessable
  1128. passwords are not used.  Each Password entered by users will be validated against
  1129. this list and a match will be rejected.
  1130. .SUBUNIT badpeople.sys
  1131.  This file is optional.  The Sysop may create it if desired.  The format is
  1132. a username and a room name separated by a comma.  If this file exists, each network
  1133. message will be checked against the list and any matches will cause the message to
  1134. be discarded(see `badwords.sys' for a similar censor mechinism).  It is important
  1135. to note here that these messages are *REMOVED* from the network and not sent on
  1136. to other systems that may not want them removed.  At times, when a certain user
  1137. gets out of control, a Sysop may want to use this option.
  1138. .SUBUNIT badwords.sys
  1139.  This optional file may be created by the Sysop to control the contents of messages.
  1140. Each message may be optionally scanned (if `#SCAN-NET-MESSAGES' is in the
  1141. `CTDLCNFG.SYS' file) as it arrives during a network session.  Any messages which
  1142. fail to meet your standards of decency will be discarded(placed in the file that
  1143. is called `DISCARD') and a message left for you in the AIDE room.  Usually, there
  1144. is little need to actively censor Citadel Users.  The format of the file is
  1145. simply a list of words or partial words(frog in the list will reject froggy, froggie,
  1146. and frog).  The list of words starts on the 3rd line of the file and all lines
  1147. from there to the end of the file.  The first line is called the "icky" level.
  1148. This level indicates how many times a user may use one of the "forbidden" words
  1149. before the system will disconnect them.  The second line may be blank if you dont
  1150. want the rejected messages saved.  If non-blank, It will be the name of the file
  1151. that Citadel uses to save the text.  Any user kicked off the BBS will get a "B"
  1152. added to the CALLLOG.SYS entry.
  1153. .SUBUNIT citadoor.sys
  1154.  This file is created by the `CONFG' program.  It contains the data needed by
  1155. the BBS to run any door programs you have setup.
  1156. .SUBUNIT ctdlarch.s
  1157.  This file is maintained by the BBS.  It contains entries for rooms that are
  1158. archived.  You should not mess with this file, instead use the BBS to change
  1159. how and when a room is archived.  Room archiving is just an additional copy of
  1160. all messages that appear in a room.  The archive file may have optional
  1161. formatting parameters in the name.  %m will be replaced by the current month
  1162. and %y by the last two digits of the year.
  1163. .SUBUNIT ctdldir.sys
  1164.  This file is maintained by the BBS.  It contains entries that tell the BBS the
  1165. name of the directory that is attached to the room.  You should use the AIDE
  1166. commands with the BBS to make any changes needed to this file.
  1167. .SUBUNIT ctdlfwd.sys
  1168.  This file is maintained by the BBS.  It contains entries that tell the BBS
  1169. where to forward mail to a particular user.  This data is maintained by the
  1170. individual user, you do not need to worry about it.
  1171. .SUBUNIT ctdlinfo.sys
  1172.  This file is maintained by the BBS.  It contains entries for each room that
  1173. are the text information on that room.  You should use the BBS to change any
  1174. room information and not directly in this file.
  1175. .SUBUNIT ctdlmodr.sys
  1176.  This file is maintained by the BBS.  It contains entries to tell the BBS who
  1177. is a moderator of a particular room.  You should use the BBS to change any of
  1178. this information.
  1179. .SUBUNIT ctdlprot.sys
  1180.  This file contains the commands needed to implement external protocols.  The
  1181. BBS will read this file only when it starts up.  Each line in the file contains
  1182. information about either an upload or download protocol.  The BBS always has
  1183. X and Y modem(even if they are really slow implementations of it) internally.
  1184. There are two types of entries.  The first is the "regular" external program
  1185. entry that defines how to call on a program that will implement the protocol.
  1186. The `protocol' parameters are used with this type of protocol.  Citadel
  1187. will invoke the program and expect the program to take care of everything except
  1188. the description(which will be prompted for afterwards).  The second type is an
  1189. XPR implementation.  Both of these types have the same parameters for the
  1190. first four parameter, it is the fifth parameter that varies.  The format is:
  1191.  <letter> <type> <name> <direction> <fifth parameter>
  1192.  The <letter> is the protocol letter that will be used by the BBS when a user
  1193. enters .R<letter>B for example.  Most people use Z for Zmodem for example.
  1194.  The <type> is 1 or M for "regular" external protocols.  1 means only single
  1195. file transfers, M means batch transfers are supported.  It is suggested that
  1196. even for a protocol like Zmodem, you only allow uploads to be single files.
  1197. This will prevent files from getting uploaded without descriptions.  A <type>
  1198. of X or Y is the corresponding types for the XPR type.  X is the single and
  1199. Y is the batch.
  1200.  The <name> parameter is the name the BBS will display when you type the <letter>
  1201.  The <direction> is U for upload and D for download.
  1202.  The <fifth parameter> is an XPR library name if it is an XPR protocol.  It
  1203. should be spelled exactly like the name in the LIBS: directory.  If it is not
  1204. an XPR protocl, the rest of the line is the command used by the BBS to invoke
  1205. the protocol.  An example CTDLPROT.SYS file looks like:
  1206.  Z X Zmodem U xprzmodem.library
  1207.  Z Y Zmodem D xprzmodem.library
  1208.  Q M Zmodem U xprd -mcit:xprd.log -s -c -n -q r %g
  1209.  K M Kermit U xprd -mcit:xprd.log -s -c -n -q -lxprkermit.library r %g
  1210.  This would only allow downloading with an XPR Zmodem, but allow uploading
  1211. with two types of Zmodem and a Kermit.
  1212. .SUBUNIT protocols
  1213.  When you have an external protocol, the command may get rather complex.  The
  1214. BBS must insert the filename(s) on the command line.  Citadel will scan the
  1215. command and locate a "%g", if that is not found the end of the command line
  1216. is used instead and the filename(s) being transfered will be inserted there.
  1217. .SUBUNIT ctdlroom.sys
  1218.  This file is maintained by Citadel.  You should not mess with it.  It contains
  1219. all the information needed to maintain a room.  Use the utilities and Citadel
  1220. to make any appropriate changes.
  1221. .SUBUNIT DExxx.SYS
  1222.  These files define external commands that Citadel may use.  There are three
  1223. lines in the file, each defining what Citadel does to Test, Uncompress, and
  1224. Compress files using the "xxx" archiver.  The supported types are ARC, LHA,
  1225. LZH, and ZIP.  Line 1 is the test line, this is used when a user uploads a
  1226. file of the recognized types.  Citadel will test the archive to ensure a good
  1227. upload.  Line 2 is the Uncompress line, Citadel uses this line to allow the
  1228. .SUBUNIT RESULTS.SYS
  1229.  This file, found in the `#ROOMAREA',  defines all the results codes your modem returns.  Citadel needs
  1230. this file to determine the speed, even if the modem is locked to one
  1231. speed(see `#LOCK-PORT').  Citadel will use this to properly compute the
  1232. estimated times for file downloads and for the speed of the modem.
  1233. The codes are one per line and a sample file would look like:
  1234.  #RESULT-300 CONNECT 300
  1235.  #RESULT-1200 CONNECT 1200
  1236.  #RESULT-2400 CONNECT 2400
  1237.  #RESULT-2400 CONNECT 2400/ARQ
  1238.  #RESULT-4800 CONNECT 4800
  1239.  #RESULT-4800 CONNECT 7200
  1240.  #RESULT-9600 CONNECT 9600
  1241.  #RESULT-9600 CONNECT 12000
  1242.  #RESULT-14400 CONNECT 14400
  1243.  #RESULT-14400 CONNECT 38400
  1244.  #RESULT-14400 CONNECT 57600
  1245.  #NO-DIALTONE NO DIALTONE
  1246.  #NO-DIALTONE NO CONNECT
  1247.  #NO-CARRIER NO CARRIER
  1248.  #OK OK
  1249.  #NO-CARRIER ERROR
  1250.  #NO-CARRIER VOICE
  1251.  #BUSY BUSY
  1252.  #RING RING
  1253.  The format is <code> <modem result code>, the two paramters are separated
  1254. by a space.  Every possible result is not defined so this example has multiple
  1255. uses of the same <code> for different connect speeds.  You can create this
  1256. file with any editor and it can be as large as needed.  There are two options
  1257. for the `CTDL' command line to make the creation and maintenance of this file
  1258. simpler.  `+CID' and `+RESULTS' which record the modem results codes in the
  1259. file `DEBUG.SYS'.  By adding `+RESULT' to the `CTDL' command line, the BBS
  1260. will record any results codes into the `DEBUG.SYS' file.  If a result code
  1261. is recorded that was not found in the RESULTS.SYS file, it will be put in
  1262. the file with the message "FAILURE to find in RESULTS.SYS:" followed by the
  1263. new results code.  You just add the data to the RESULTS.SYS file with the
  1264. approrpiate <code> field.
  1265. .SUBUNIT DISCARD
  1266.  This file is the default file that will be used for messages that are
  1267. duplicates, rejected because of decency(`BADWORDS.SYS' or `BADPEOPLE.SYS').
  1268. Citadel saves the discards here so you can review them(just incase there
  1269. is problem).  This file will be found in the `#HOMEAREA'.
  1270. .SUBUNIT CTDLCNFG.SYS
  1271.  This file is the basic configuration information for setting up the BBS.
  1272. The text lines in this file are processed by `CONFG' and the CTDLTABL.SYS
  1273. file is created.  This is the file you should edit to make adjustments to
  1274. the BBS.
  1275.  
  1276.